Conversation
|
저도 실습...! 풀어야겠읍니다!!!! |
| const hasIncludes = (url: string, value: string): 'YES' | 'NO' => | ||
| url.includes(value) ? 'YES' : 'NO' | ||
|
|
||
| export const splitHashPart = ( |
There was a problem hiding this comment.
| export const splitHashPart = ( | |
| export const getHashParts = ( |
면 어떨까용? split은 Array.split메소드랑 비슷한 네이밍이라 Array를 리턴하는 함수로 오해 받을 수 있을 거 같아요
There was a problem hiding this comment.
오 좋네요..! 동의합니다. 반영해볼게요!
There was a problem hiding this comment.
hash 뿐 아니라 nonHash도 같이 return 하고 있어서, get 대신 parse나 decode 같은것도 좋아보입니다!
There was a problem hiding this comment.
const { hash, nonHash } = getHashParts("https://naver.com")
const { hash, nonHash } = parseHashParts("https://naver.com")
const { hash, nonHash } = decodeHashParts("https://naver.com")ㅜㅜ 네이밍만 봐서는 저는 다 좋아보여서,, 챗지피티한테 물어봤는데 이렇게 답해주더라구요
파싱은 해시만 뜯어내는 역할이 아니라, 다른 작업도 해줘야 할 것 같고,
디코드는 인코딩된 애를 디코딩해주는 역할도 포함인 것 같아서
지금 제 함수 역할은 단순히 # 뒤의 문자열부터 뜯어내는 역할이라, get이 조금 더 명확한 것 같은데 민수님 의견도 궁금합니다!
There was a problem hiding this comment.
아 그러네요 parse나 decode는 hash가 아니라 url이 대상이라 좀 어색해지는군요!
그렇다면 get이 좋아보입니다ㅎㅎ
제가 걸렸던건 { hash: string; nonHash: string; } 이 객체에 hash가 있는데 그 객체 자체를 hash라고 부르니까 헷갈릴까봐서였는데,
지금 다시 보니까 hashParts라고 해서 nonHash도 포함된 걸로 볼 수 있었겠네요.
There was a problem hiding this comment.
맞습니다! 민수님이 짚어주신 부분이 저도 공감되어서 고민해봤는데 get이 지금은 제일 무난해보입니다..! 좋은 의견 감사해요!
| /** | ||
| * 출제자: 예진님 (yejineee) | ||
| * URL의 쿼리스트링 관련 유틸 함수를 계산 을 최대한 이용하여 만들기 | ||
| * | ||
| * - 해쉬가 있다면, 유지해야 함 | ||
| * - 기존 쿼리가 있다면, 유지해야 함 | ||
| * - 기존 쿼리와 추가하려는 쿼리의 key가 동일하다면, 기존 쿼리가 대체됨 | ||
| */ | ||
|
|
||
| export const addQuery = ( | ||
| originURL: string, | ||
| key: string, | ||
| value: string | number, | ||
| ) => { |
There was a problem hiding this comment.
- 해쉬가 있다면, 유지해야 함
- 기존 쿼리가 있다면, 유지해야 함
- 기존 쿼리와 추가하려는 쿼리의 key가 동일하다면, 기존 쿼리가 대체됨
위와 같은 요구사항이라면 set이라는 이름을 쓰면 어떨까요? 뭔가 set이 더 어울리는 것 같아요
addQuery라면 queryParam을 배열로 사용하는 경우로 오해받을 수도 있을 거 같아보여서요
| /** | |
| * 출제자: 예진님 (yejineee) | |
| * URL의 쿼리스트링 관련 유틸 함수를 계산 을 최대한 이용하여 만들기 | |
| * | |
| * - 해쉬가 있다면, 유지해야 함 | |
| * - 기존 쿼리가 있다면, 유지해야 함 | |
| * - 기존 쿼리와 추가하려는 쿼리의 key가 동일하다면, 기존 쿼리가 대체됨 | |
| */ | |
| export const addQuery = ( | |
| originURL: string, | |
| key: string, | |
| value: string | number, | |
| ) => { | |
| /** | |
| * 출제자: 예진님 (yejineee) | |
| * URL의 쿼리스트링 관련 유틸 함수를 계산 을 최대한 이용하여 만들기 | |
| * | |
| * - 해쉬가 있다면, 유지해야 함 | |
| * - 기존 쿼리가 있다면, 유지해야 함 | |
| * - 기존 쿼리와 추가하려는 쿼리의 key가 동일하다면, 기존 쿼리가 대체됨 | |
| */ | |
| export const setQuery = ( | |
| originURL: string, | |
| key: string, | |
| value: string | number, | |
| ) => { |
There was a problem hiding this comment.
오,, 저두 이거 약간 헷갈리는 것 같긴했는데 출제자인 예진님이 함수 이름을 정해주신거라! 예진님 의견도 궁금합니다!
Describe your changes
너무 재밌는 문제였습니다. 실습 문제라기보다는 실무의 문제를 해결한 기분이었어요
순수함수를 만들려고 노력했고, protocol이 꼭 붙어야 하는 강제성을 띄우고 싶지 않아서 URL 객체를 사용하지 않았습니다.
테스트 코드를 작성하면서 예외 사항들을 많이 생각한다고 더 추가해봤는데, 어디까지 추가해야 할지 감이 잘 안 오긴했습니다 ㅠ
💬 질문 사항이에요
🤷♂️ 확인 받고 싶은 부분이에요
🔥 이건 꼭 확인해주세요